// src/plugins/io.js
import io from 'socket.io-client'
// 引入 socket.io-client 库

// 根据环境设置不同的Socket连接地址
const isProduction = import.meta.env.MODE === 'production'
const socketConnection = isProduction ? 'http://43.138.15.137:3000' : 'http://43.138.15.137:3000'

export default {
  install(app, { connection = socketConnection, options = {} }) {
    // 添加错误处理，防止Socket连接失败导致白屏
    try {
      const socket = io(connection, options)

      // 添加连接错误处理
      socket.on('connect_error', (error) => {
        console.error('Socket连接失败:', error)
      })

      // 挂载到全局属性（兼容 Options API）
      app.config.globalProperties.$socket = socket

      // 提供依赖注入（推荐在 Composition API 中使用）
      app.provide('socket', socket)
    } catch (error) {
      console.error('Socket初始化失败:', error)
      // 即使Socket初始化失败，也确保应用能正常运行
      const dummySocket = {
        emit: () => { },
        on: () => { },
        off: () => { },
        disconnect: () => { }
      }
      app.config.globalProperties.$socket = dummySocket
      app.provide('socket', dummySocket)
    }
  }
}